#include <iostream>
#include "hero.h"

Hero::Hero(const string &name, int _hp, int _attack, int _defense)
    : _name(name), _hp(_hp), _attack(_attack), _defense(_defense) {
    // 构造函数的实现
}

Hero::~Hero() {
    // 析构函数可以不做任何操作
    // 由于Hero没有额外的资源需要释放，所以可以留空
}

string Hero::getName() const {
    return _name; // 获取英雄的名字
}

int Hero::getHp() const {
    return _hp; // 获取英雄的生命值
}

int Hero::getAttack() const {
    return _attack; // 获取英雄的攻击力
}

int Hero::getDefense() const {
    return _defense; // 获取英雄的防御力
}

bool Hero::setName(const string &name) {
    if (name.empty()) return false; // 名字不能为空
    if (name.length() > 50) return false; // 名字长度不能超过50个字符
    _name = name; // 设置英雄的名字
    return true;  // 返回true表示设置成功
}

bool Hero::setHp(int hp) {
    if (hp < 0) return false; // 生命值不能为负
    _hp = hp; // 设置英雄的生命值
    return true; // 返回true表示设置成功
}

bool Hero::setAttack(int attack) {
    if (attack < 0) return false; // 攻击力不能为负
    _attack = attack; // 设置英雄的攻击力
    return true; // 返回true表示设置成功
}

bool Hero::setDefense(int defense) {
    if (defense < 0) return false; // 防御力不能为负
    _defense = defense; // 设置英雄的防御力
    return true; // 返回true表示设置成功
}